package com.b2b2c.cooperator.dao.idl;

import java.util.BitSet;
import java.util.Map;
import java.util.Vector;
import java.util.Set;

import com.paipai.lang.uint8_t;
import com.paipai.lang.uint16_t;
import com.paipai.lang.uint32_t;
import com.paipai.lang.uint64_t;
import com.paipai.util.annotation.ApiProtocol;
import com.paipai.util.annotation.Field;
import com.paipai.util.annotation.HeadApiProtocol;
import com.paipai.util.annotation.Member;


/**
 * dao_Cooperator
 * @author jasonpeng
 *
 */
@HeadApiProtocol(cPlusNamespace = "b2b2c::cooperator::dao", needInit = true, needReset = true)
public class CooperatorDao {
	@Member(desc = "合作伙伴基本信息", cPlusNamespace = "b2b2c::cooperator::ddo", isNeedUFlag = true)
	public class CooperatorBaseInfoDdo {
		@Field(desc = "版本号", defaultValue = "3")
		uint8_t version;
 
		@Field(desc = "合作伙伴ID")
		uint32_t cooperatorId;

		@Field(desc = "合作伙伴名称")
		String cooperatorName;
				
		@Field(desc = "合作伙伴简称")
		String cooperatorDiminutive;
		
		@Field(desc = "合作伙伴名称企业法人")
		String cooperatorLegalPerson;

		@Field(desc = "合作伙伴地址")
		String cooperatorAddress;

		@Field(desc = "合作伙伴联系电话")
		String cooperatorPhone;

		@Field(desc = "合作伙伴传真")
		String cooperatorFax;
		
		@Field(desc = "合作伙伴邮箱")
		String cooperatorEmail;
		
		@Field(desc = "合作伙伴类型")
		uint8_t cooperatorType;
						
		@Field(desc = "合作伙伴财付通商户ID")
		String cooperatorSpid;		
		
		@Field(desc = "合作伙伴属性", bitset=128)
		BitSet cooperatorProperty;
		
		@Field(desc = "合作伙伴状态")
		uint8_t cooperatorState;
		
		@Field(desc = "主合同号")
		String contractNo;
		
		@Field(desc = "我方主体ID")
		uint64_t orgId;
		
		@Field(desc = "我方主体")
		String orgFullName;
		
		@Field(desc = "他方主体ID")
		uint64_t cvId;
		
		@Field(desc = "他方主体")
		String cvName;
		
		@Field(desc = "合作伙伴子帐号列表")
		Vector<CooperatorSubAccountDdo> cooperatorSubAccountDdo;
		
		@Field(desc = "合作伙伴添加时间")
		uint32_t cooperatorAddTime;
		
		@Field(desc = "合作伙伴最后修改时间")
		uint32_t cooperatorLastUpdateTime;

		@Field(desc = "保留字段dw")
		uint32_t reserveDw;
		
		@Field(desc = "保留字段str")
		String reserveStr;

		@Field(desc = "版本号_u", defaultValue = "2")
		uint8_t version_u;

		@Field(desc = "合作伙伴ID_u")
		uint8_t cooperatorId_u;

		@Field(desc = "合作伙伴名称_u")
		uint8_t cooperatorName_u;
				
		@Field(desc = "合作伙伴简称_u")
		uint8_t cooperatorDiminutive_u;
		
		@Field(desc = "合作伙伴名称企业法人_u")
		uint8_t cooperatorLegalPerson_u;

		@Field(desc = "合作伙伴地址_u")
		uint8_t cooperatorAddress_u;

		@Field(desc = "合作伙伴联系电话_u")
		uint8_t cooperatorPhone_u;

		@Field(desc = "合作伙伴传真_u")
		uint8_t cooperatorFax_u;
		
		@Field(desc = "合作伙伴邮箱_u")
		uint8_t cooperatorEmail_u;
		
		@Field(desc = "合作伙伴类型_u")
		uint8_t cooperatorType_u;
						
		@Field(desc = "合作伙伴spid_u")
		uint8_t cooperatorSpid_u;
		
		@Field(desc = "合作伙伴属性_u")
		uint8_t cooperatorProperty_u;
		
		@Field(desc = "合作伙伴状态_u")
		uint8_t cooperatorState_u;
		
		@Field(desc = "主合同号_u")
		uint8_t contractNo_u;
		
		@Field(desc = "我方主体ID_u")
		uint8_t orgId_u;
		
		@Field(desc = "我方主体_u")
		uint8_t orgFullName_u;
		
		@Field(desc = "他方主体ID_u")
		uint8_t cvId_u;
		
		@Field(desc = "他方主体_u")
		uint8_t cvName_u;
		
		@Field(desc = "合作伙伴子帐号列表_u")
		uint8_t cooperatorSubAccountDdo_u;
		
		@Field(desc = "合作伙伴添加时间_u")
		uint8_t cooperatorAddTime_u;
		
		@Field(desc = "合作伙伴最后修改时间_u")
		uint8_t cooperatorLastUpdateTime_u;

		@Field(desc = "保留字段dw_u")
		uint8_t reserveDw_u;
		
		@Field(desc = "保留字段str_u")
		uint8_t reserveStr_u;
		
		@Field(desc = "合作伙伴所在地简称", version = 1)
		String cooperatorAddrDiminutive;

		@Field(desc = "合作伙伴所在地简称_u", version = 1)
		uint8_t cooperatorAddrDiminutive_u;

		@Field(desc = "客服热线电话", version = 1)
		String CustomerHotLine;

		@Field(desc = "客服热线电话_u", version = 1)
		uint8_t CustomerHotLine_u;

		@Field(desc = "合作伙伴属性 include bit位", bitset = 128, version = 1)
		BitSet bitInclude;
		
		@Field(desc = "合作伙伴属性 include bit位 flag", version = 1)
		uint8_t bitInclude_u;

		@Field(desc = "合作伙伴属性 exclude bit位", bitset = 128, version = 1)
		BitSet bitExclude;
		
		@Field(desc = "合作伙伴属性 exclude bit位 flag", version = 1)
		uint8_t bitExclude_u;
		
		@Field(desc = "易迅Id", version = 2)
		uint32_t icsonId;
		
		@Field(desc = "易迅Id_u", version = 2)
		uint8_t icsonId_u;
		
		@Field(desc = "联营商户类型, 枚举类型", version = 2)
		uint32_t sellerType;
		
		@Field(desc = "联营商户类型_u", version = 2)
		uint8_t sellerType_u;
		
		@Field(desc = "合作伙伴英文名", version = 2)
		String cooperatorEnName;
		
		@Field(desc = "合作伙伴英文名_u", version = 2)
		uint8_t cooperatorEnName_u;
		
		@Field(desc = "合作伙伴联系人", version = 2)
		String cooperatorContactPerson;
		
		@Field(desc = "合作伙伴联系人_u", version = 2)
		uint8_t cooperatorContactPerson_u;	
		
		@Field(desc = "合作伙伴账号", version = 3)
		String cooperatorAccount;
		
		@Field(desc = "合作伙伴账号_u", version = 3)
		uint8_t cooperatorAccount_u;
		
		@Field(desc = "合作伙伴账号类型", version = 3)
		uint32_t cooperatorAccountType;
		
		@Field(desc = "合作伙伴账号类型_u", version = 3)
		uint8_t cooperatorAccountType_u;		
	}
	
	@Member(desc = "合作伙伴许可证信息", cPlusNamespace = "b2b2c::cooperator::ddo", isNeedUFlag = true)
	public class CooperatorLicenseDdo {
		@Field(desc = "版本号", defaultValue = "1")
		uint8_t version;

		@Field(desc = "合作伙伴ID")
		uint32_t cooperatorId;

		@Field(desc = "许可证类型")
		uint8_t licenseType;
				
		@Field(desc = "许可证编号")
		String licenseCode;

		@Field(desc = "许可证使用范围")
		String cooperatorScope;

		@Field(desc = "许可证开始日期")
		uint32_t licenseBeginDate;

		@Field(desc = "许可证终止日期")
		uint32_t licenseEndDate;
		
		@Field(desc = "许可证录入时间")
		uint32_t licenseaddtime;

		@Field(desc = "许可证最后修改时间")
		uint32_t licenselastupdatetime;
		
		@Field(desc = "保留字段dw")
		uint32_t reserveDw;
		
		@Field(desc = "保留字段str")
		String reserveStr;

		@Field(desc = "版本号_u", defaultValue = "1")
		uint8_t version_u;

		@Field(desc = "合作伙伴ID_u")
		uint8_t cooperatorId_u;

		@Field(desc = "许可证类型_u")
		uint8_t licenseType_u;
				
		@Field(desc = "许可证编号_u")
		uint8_t licenseCode_u;

		@Field(desc = "许可证使用范围_u")
		uint8_t cooperatorScope_u;

		@Field(desc = "许可证开始日期_u")
		uint8_t licenseBeginDate_u;

		@Field(desc = "许可证终止日期_u")
		uint8_t licenseEndDate_u;
		
		@Field(desc = "许可证录入时间_u")
		uint8_t licenseaddtime_u;

		@Field(desc = "许可证最后修改时间_u")
		uint8_t licenselastupdatetime_u;
		
		@Field(desc = "保留字段dw_u")
		uint8_t reserveDw_u;
		
		@Field(desc = "保留字段str_u")
		uint8_t reserveStr_u;
		
		@Field(desc = "品牌id", version = 1)
		uint32_t pid;
		
		@Field(desc = "品牌id_u", version = 1)
		uint8_t pid_u;	
		
		@Field(desc = "资质文件url", version = 1)
		String fileUrl;
		
		@Field(desc = "资质文件url_u", version = 1)
		uint8_t fileUrl_u;		
	}
	
	@Member(desc = "合作伙伴子帐号信息", cPlusNamespace = "b2b2c::cooperator::ddo", isNeedUFlag = true)
	public class CooperatorSubAccountDdo {
		@Field(desc = "版本号", defaultValue = "1")
		uint8_t version;

		@Field(desc = "合作伙伴子帐号ID")
		uint64_t cooperatorSubAccountId;

		@Field(desc = "合作伙伴ID")
		uint32_t cooperatorId;
		
		@Field(desc = "合作伙伴子帐号状态")
		uint32_t cooperatorSubAccountState;
				
		@Field(desc = "合作协议ID")
		uint64_t cooperatorProtocolId;
		
		@Field(desc = "合作伙伴子帐号添加时间")
		uint32_t cooperatorSubAccountAddTime;
		
		@Field(desc = "合作伙伴子帐号最后修改时间")
		uint32_t cooperatorSubAccountLastUpdateTime;
		
		@Field(desc = "保留字段dw")
		uint32_t reserveDw;
		
		@Field(desc = "保留字段str")
		String reserveStr;

		@Field(desc = "版本号_u", defaultValue = "1")
		uint8_t version_u;

		@Field(desc = "合作伙伴子帐号ID_u")
		uint8_t cooperatorSubAccountId_u;

		@Field(desc = "合作伙伴ID_u")
		uint8_t cooperatorId_u;
		
		@Field(desc = "合作伙伴子帐号状态_u")
		uint8_t cooperatorSubAccountState_u;
				
		@Field(desc = "合作协议ID_u")
		uint8_t cooperatorProtocolId_u;
		
		@Field(desc = "合作伙伴子帐号添加时间_u")
		uint8_t cooperatorSubAccountAddTime_u;
		
		@Field(desc = "合作伙伴子帐号最后修改时间_u")
		uint8_t cooperatorSubAccountLastUpdateTime_u;
		
		@Field(desc = "保留字段dw_u")
		uint8_t reserveDw_u;
		
		@Field(desc = "保留字段str_u")
		uint8_t reserveStr_u;
		
		@Field(desc = "子帐号所对应的类目ID")
		uint32_t navId;

		@Field(desc = "子帐号所对应的类目名称")
		String navName;
		
		@Field(desc = "子帐号所对应的类目ID_u")
		uint8_t navId_u;		
		
		@Field(desc = "子帐号所对应的类目名称_u")
		uint8_t navName_u;
		
		@Field(desc = "合作伙伴子帐号属性", bitset=128, version = 1)
		BitSet cooperatorSubAccountProperty;
		
		@Field(desc = "合作伙伴子帐号属性_u", version = 1)
		uint8_t cooperatorSubAccountProperty_u;
		
		@Field(desc = "合作伙伴属性 include bit位", bitset = 128, version = 1)
		BitSet bitInclude;
		
		@Field(desc = "合作伙伴属性 include bit位 flag", version = 1)
		uint8_t bitInclude_u;

		@Field(desc = "合作伙伴属性 exclude bit位", bitset = 128, version = 1)
		BitSet bitExclude;
		
		@Field(desc = "合作伙伴属性 exclude bit位 flag", version = 1)
		uint8_t bitExclude_u;
	}
	
	@Member(desc = "合作伙伴属性位信息", cPlusNamespace = "b2b2c::cooperator::ddo", isNeedUFlag = true)
	public class CooperatorProDdo {
		@Field(desc = "版本号", defaultValue = "0")
		uint32_t version;
		@Field(desc = "版本号_u", defaultValue = "0")
		uint8_t version_u;
		
		@Field(desc = "合作伙伴ID")
		uint32_t cooperatorId;
		@Field(desc = "合作伙伴ID_u")
		uint8_t cooperatorId_u;
		
		@Field(desc = "合作伙伴属性 include bit位", bitset=128)
		BitSet bitInclude;
		@Field(desc = "合作伙伴属性 include bit位 flag")
		uint8_t bitInclude_u;
		
		@Field(desc = "合作伙伴属性 exclude bit位", bitset=128)
		BitSet bitExclude;		
		@Field(desc = "合作伙伴属性 exclude bit位 flag")
		uint8_t bitExclude_u;
		
		@Field(desc = "保留字段dw")
		uint32_t reserveDw;
		@Field(desc = "保留字段dw_u")
		uint8_t reserveDw_u;
		
		@Field(desc = "保留字段str")
		String reserveStr;		
		@Field(desc = "保留字段str_u")
		uint8_t reserveStr_u;
	}
	
	@Member(desc = "合作伙伴子帐号属性位信息", cPlusNamespace = "b2b2c::cooperator::ddo", isNeedUFlag = true)
	public class CooperatorSubProDdo {
		@Field(desc = "版本号", defaultValue = "0")
		uint32_t version;
		@Field(desc = "版本号_u", defaultValue = "0")
		uint8_t version_u;
		
		@Field(desc = "合作伙伴ID")
		uint32_t cooperatorId;
		@Field(desc = "合作伙伴ID_u")
		uint8_t cooperatorId_u;
		
		@Field(desc = "合作伙伴属性 include bit位", bitset=128)
		BitSet bitInclude;
		@Field(desc = "合作伙伴属性 include bit位 flag")
		uint8_t bitInclude_u;
		
		@Field(desc = "合作伙伴属性 exclude bit位", bitset=128)
		BitSet bitExclude;		
		@Field(desc = "合作伙伴属性 exclude bit位 flag")
		uint8_t bitExclude_u;
		
		@Field(desc = "保留字段dw")
		uint32_t reserveDw;
		@Field(desc = "保留字段dw_u")
		uint8_t reserveDw_u;
		
		@Field(desc = "保留字段str")
		String reserveStr;		
		@Field(desc = "保留字段str_u")
		uint8_t reserveStr_u;
	}
	
	@Member(desc = "合作伙伴设置信息", cPlusNamespace = "b2b2c::cooperator::ddo", isNeedUFlag = true)
	public class CooperatorSetDdo {
		@Field(desc = "版本号", defaultValue = "0")
		uint32_t version;
		@Field(desc = "版本号_u", defaultValue = "0")
		uint8_t version_u;
		
		@Field(desc = "合作伙伴属性位")
		CooperatorProDdo cooperatorProDdo;
		@Field(desc = "合作伙伴属性位_u")
		uint8_t cooperatorProDdo_u;
		
		@Field(desc = "合作伙伴子帐号属性位")
		CooperatorSubProDdo cooperatorSubProDdo;		
		@Field(desc = "合作伙伴子帐号属性位_u")
		uint8_t cooperatorSubProDdo_u;
		
		@Field(desc = "保留字段dw")
		uint32_t reserveDw;
		@Field(desc = "保留字段dw_u")
		uint8_t reserveDw_u;
		
		@Field(desc = "保留字段str")
		String reserveStr;		
		@Field(desc = "保留字段str_u")
		uint8_t reserveStr_u;
	}
	
	@Member(desc = "价格告警模版信息", cPlusNamespace = "b2b2c::cooperator::ddo", isNeedUFlag = true)
	public class CooperatorMonitorModelDdo {
		@Field(desc = "版本号", defaultValue = "0")
		uint32_t version;
		uint8_t version_u;
		
		@Field(desc = "模版ID")
		uint32_t modelId;
		uint8_t modelId_u;
		
		@Field(desc = "合作伙伴ID")
		uint32_t cooperatorId;
		uint8_t cooperatorId_u;
		
		@Field(desc = "模版名称")
		String modelName;
		uint8_t modelName_u;
		
		@Field(desc = "模版规则")
		String modelRule;
		uint8_t modelRule_u;
		
		@Field(desc = "模版触达方式")
		uint16_t monitorTouch;
		uint8_t monitorTouch_u;
		
		@Field(desc = "模版类型，0系统，1自定义")
		uint16_t modelType;
		uint8_t modelType_u;
		
		@Field(desc = "模版状态 0关闭，1开启，2删除")
		uint16_t modelState;
		uint8_t modelState_u;
		
		@Field(desc = "模版新增时间")
		uint32_t modelAddTime;
		uint8_t modelAddTime_u;
		
		@Field(desc = "模版更新时间")
		uint32_t modelLastUpdateTime;
		uint8_t modelLastUpdateTime_u;
	}
	
	
	@ApiProtocol(cmdid = "0xA0111801L", desc = "获取合作伙伴基本信息")
	class GetCooperatorBaseInfo {
		@ApiProtocol(cmdid = "0xA0111801L", desc = "获取合作伙伴基本信息请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;
			
			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
		
			@Field(desc = "合作伙伴ID或合作伙伴子帐号ID，必填")
			uint64_t cooperatorId;
			
			@Field(desc = "请求保留字")
			String inReserve;
		}

		@ApiProtocol(cmdid = "0xA0118801L", desc = "获取合作伙伴基本信息返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "合作伙伴基本信息")
			CooperatorBaseInfoDdo cooperatorBaseInfoDdo;	
			
			@Field(desc = "输出保留字")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0111802L", desc = "获取合作伙伴许可证信息")
	class GetCooperatorLicense {
		@ApiProtocol(cmdid = "0xA0111802L", desc = "获取合作伙伴许可证信息请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴ID或合作伙伴子帐号ID，必填")
			uint64_t cooperatorId;
			
			@Field(desc = "许可证类型，为空则为全部许可证列表")
			Set<uint8_t> licenseType;
			
			@Field(desc = "请求保留字段")
			String inReserve;											
		}

		@ApiProtocol(cmdid = "0xA0118802L", desc = "获取合作伙伴许可证信息返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "合作伙伴许可证信息")
			Vector<CooperatorLicenseDdo> cooperatorLicenseDdo;

			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0111803L", desc = "检查合作伙伴密码信息")
	class CheckCooperatorPassWd {
		@ApiProtocol(cmdid = "0xA0111803L", desc = "检查合作伙伴密码信息请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴ID或合作伙伴子帐号ID，必填")
			uint64_t cooperatorId;
			
			@Field(desc = "合作伙伴密码（三次MD5加密），必填")
			String cooperatorPassword;
						
			@Field(desc = "请求保留字段")
			String inReserve;											
		}

		@ApiProtocol(cmdid = "0xA0118803L", desc = "获取合作伙伴密码信息返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0111804L", desc = "获取合作伙伴数据加密Key")
	class GetCooperatorKey {
		@ApiProtocol(cmdid = "0xA0111804L", desc = "获取合作伙伴数据加密Key请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴ID或合作伙伴子帐号ID，必填")
			uint64_t cooperatorId;
						
			@Field(desc = "请求保留字段")
			String inReserve;
		}

		@ApiProtocol(cmdid = "0xA0118804L", desc = "获取合作伙伴数据加密Key返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "合作伙伴数据加密Key，长度32bytes；生成规则：合作伙伴当前密码三次MD5加密后的值")
			String sCooperatorKey;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0111805L", desc = "获取价格告警模版列表")
	class GetCooperatorMonitorModelList {
		
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴ID或合作伙伴子帐号ID，必填")
			uint32_t cooperatorId;
						
			@Field(desc = "请求保留字段")
			String inReserve;
		}

		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "告警模版列表")
			Vector<CooperatorMonitorModelDdo> CooperatorMonitorModelDdo;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0111806L", desc = "通过模版ID获取告警模版")
	class GetCooperatorMonitorModel {
		
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴ID或合作伙伴子帐号ID，必填")
			uint32_t cooperatorId;
			
			@Field(desc = "模版ID，必填")
			uint32_t modelId;
						
			@Field(desc = "请求保留字段")
			String inReserve;
		}

		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "告警模版")
			CooperatorMonitorModelDdo CooperatorMonitorModelDdo;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0101801L", desc = "更新【新增和修改】合作伙伴基本信息")
	class UpdateCooperatorBaseInfo {
		@ApiProtocol(cmdid = "0xA0101801L", desc = "更新【新增和修改】合作伙伴基本信息请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴基本信息，必填")
			CooperatorBaseInfoDdo cooperatorBaseInfoDdo;
						
			@Field(desc = "请求保留字段")
			String inReserve;											
		}

		@ApiProtocol(cmdid = "0xA0108801L", desc = "更新【新增和修改】合作伙伴基本信息返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0101802L", desc = "设置合作伙伴密码信息")
	class SetCooperatorPassWd {
		@ApiProtocol(cmdid = "0xA0101802L", desc = "设置合作伙伴密码信息请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴ID，必填")
			uint64_t cooperatorId;
			
			@Field(desc = "合作伙伴老密码（三次MD5加密），必填")
			String cooperatorOldPassword;
			
			@Field(desc = "合作伙伴新密码（三次MD5加密），必填")
			String cooperatorNewPassword;
						
			@Field(desc = "请求保留字段")
			String inReserve;											
		}

		@ApiProtocol(cmdid = "0xA0108802L", desc = "设置合作伙伴密码信息返回类")
		class Resp {	
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0101803L", desc = "更新【新增和修改】合作伙伴许可证信息")
	class UpdateCooperatorLicense {
		@ApiProtocol(cmdid = "0xA0101803L", desc = "更新【新增和修改】合作伙伴许可证信息请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴许可证信息，必填")
			CooperatorLicenseDdo cooperatorLicenseDdo;
						
			@Field(desc = "请求保留字段")
			String inReserve;											
		}

		@ApiProtocol(cmdid = "0xA0108803L", desc = "更新【新增和修改】合作伙伴许可证信息返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0101804L", desc = "支付物流系统设置卖家的次日达，货到付款等属性位接口")
	class SetCooperatorPro {
		@ApiProtocol(cmdid = "0xA0101804L", desc = "支付物流系统设置卖家的次日达，货到付款等属性位请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;
			
			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "选项,暂未用")
			uint64_t option;				
		
			@Field(desc = "合作伙伴属性位设置，包括合作伙伴ID、设置和取消属性值设置的参数（设置和取消的属性位不能冲突），必填")
			CooperatorProDdo cooperatorProDdo;
			
			@Field(desc = "请求保留字")
			String inReserve;
		}

		@ApiProtocol(cmdid = "0xA0108804L", desc = "支付物流系统设置卖家的次日达，货到付款等属性位返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "输出保留字")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0101805L", desc = "从管理后台等其他业务同步过来的设置合作伙伴属性位等信息的接口")
	class SetCooperatorInfo {
		@ApiProtocol(cmdid = "0xA0101805L", desc = "从管理后台等其他业务同步过来的设置合作伙伴属性位等信息请求类")
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;
			
			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "选项,暂未用")
			uint64_t option;				
		
			@Field(desc = "合作伙伴属性位设置，包括合作伙伴ID、设置和取消属性值设置的参数（设置和取消的属性位不能冲突）等，必填")
			CooperatorSetDdo cooperatorSetDdo;
			
			@Field(desc = "请求保留字")
			String inReserve;
		}

		@ApiProtocol(cmdid = "0xA0108805L", desc = "从管理后台等其他业务同步过来的设置合作伙伴属性位等信息返回类")
		class Resp {
			@Field(desc = "错误信息")
			String errmsg;

			@Field(desc = "输出保留字")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0101806L", desc = "新增或者更新告警模版")
	class UpdateCooperatorMonitorModel {
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "告警模版，必填")
			CooperatorMonitorModelDdo CooperatorMonitorModelDdo;
						
			@Field(desc = "请求保留字段")
			String inReserve;
		}

		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
	
	@ApiProtocol(cmdid = "0xA0101807L", desc = "删除告警模版")
	class DeleteCooperatorMonitorModel {
		
		class Req {
			@Field(desc = "机器码，必填")
			String machineKey;

			@Field(desc = "调用来源，必填")
			String source;
			
			@Field(desc = "场景id，必填")
			uint32_t sceneId;
			
			@Field(desc = "合作伙伴ID或合作伙伴子帐号ID，必填")
			uint32_t cooperatorId;
			
			@Field(desc = "模版ID，必填")
			uint32_t modelId;
						
			@Field(desc = "请求保留字段")
			String inReserve;
		}

		class Resp {
			@Field(desc = "错误信息")
			String errmsg;
			
			@Field(desc = "请求保留字段")
			String outReserve;
		}
	}
}
